package net.yla.smartbus.module.ba.duty.mapper;

import com.alibaba.fastjson.JSONObject;
import net.yla.smartbus.module.ba.dept.entity.GroupChildrenDO;
import net.yla.smartbus.module.ba.duty.dto.DeptDTO;
import net.yla.smartbus.module.ba.duty.entity.DutyDO;
import net.yla.smartbus.module.ba.duty.query.DutyQuery;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @description:
 * @author: Yee
 * @date: 2021/6/17 14:46
 */
@Repository
public interface DutyMapper {

    /**
     * 查询子分组id
     *
     * @param parentId
     * @return
     */
    List<GroupChildrenDO> listGroupId(Integer parentId);

    /**
     * 根据query查询
     *
     * @param query
     * @return
     */
    List<DutyDO> listByQuery(DutyQuery query);


    /**
     * 根据query查询数量
     *
     * @param query
     * @return
     */
    int countByQuery(DutyQuery query);

    /**
     * 根据分组id查询分组名称
     *
     * @param groupId
     * @return
     */
    String selectGroupName(@Param("groupId") Integer groupId);

    /**
     * 根据职务id查询拥有人员数量
     *
     * @param dutieId
     * @return
     */
    int countBydetiesId(@Param("dutieId") Integer dutieId);


    /**
     * 根据部门id查询部门名称
     *
     * @param deptId
     * @return
     */
    String selectDeptName(@Param("deptId") Integer deptId);

    /**
     * 根据主键逻辑删除职务
     *
     * @param dutieId
     * @return
     */
    int updateDety(@Param("dutyId") Integer dutyId);

    /**
     * 查询版本
     *
     * @param dutieId
     * @return
     */
    int selectVersion(@Param("dutieId") Integer dutieId);

    int updateDuty(DutyDO dutyDO);

    int insertDuty(DutyDO dutyDO);

    /**
     * 查询是否有重复名称职务
     *
     * @param name
     * @return
     */
    Integer selectDutyName(@Param("name") String name);

    List<DeptDTO> allDept();

    String dutyName(@Param("dutieId") Integer dutieId);

    List<JSONObject> dutuies();


    Integer getdutyId(@Param("name") String name);
}
